package cn.iocoder.yudao.module.of.dal.mysql.documentinfo;

import java.util.*;

import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.module.of.dal.dataobject.documentinfo.DocumentInfoDO;
import org.apache.ibatis.annotations.Mapper;
import cn.iocoder.yudao.module.of.controller.admin.documentinfo.vo.*;

/**
 * 公文信息 Mapper
 *
 * @author 超级管理员
 */
@Mapper
public interface DocumentInfoMapper extends BaseMapperX<DocumentInfoDO> {

    default PageResult<DocumentInfoDO> selectPage(DocumentInfoPageReqVO reqVO) {
        return selectPage(reqVO, new LambdaQueryWrapperX<DocumentInfoDO>()
                .eqIfPresent(DocumentInfoDO::getSendDocDeptId, reqVO.getSendDocDeptId())
                .likeIfPresent(DocumentInfoDO::getSendDocDeptName, reqVO.getSendDocDeptName())
                .betweenIfPresent(DocumentInfoDO::getReceiptDocDate, reqVO.getReceiptDocDate())
                .eqIfPresent(DocumentInfoDO::getDocCode, reqVO.getDocCode())
                .likeIfPresent(DocumentInfoDO::getDocName, reqVO.getDocName())
                .eqIfPresent(DocumentInfoDO::getReceiptUserId, reqVO.getReceiptUserId())
                .likeIfPresent(DocumentInfoDO::getReceiptUserName, reqVO.getReceiptUserName())
                .eqIfPresent(DocumentInfoDO::getHandleUserId, reqVO.getHandleUserId())
                .likeIfPresent(DocumentInfoDO::getHandleUserName, reqVO.getHandleUserName())
                .eqIfPresent(DocumentInfoDO::getAttachs, reqVO.getAttachs())
                .eqIfPresent(DocumentInfoDO::getMainRespDeptId, reqVO.getMainRespDeptId())
                .likeIfPresent(DocumentInfoDO::getMainRespDeptName, reqVO.getMainRespDeptName())
                .betweenIfPresent(DocumentInfoDO::getCreateTime, reqVO.getCreateTime())
                .orderByDesc(DocumentInfoDO::getId));
    }

}